{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 正则化（Regularization）\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "L1正则化：权值向量w中各个元素的绝对值之和\n",
    "$$\\sum_w |w|$$\n",
    "L2正则化：权值向量w中各个元素的平方和\n",
    "$$\\sum_w w^2$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "L1正则化和L2正则化可以看做是损失函数的惩罚项。所谓【惩罚】是指对损失函数中的某些参数做一些限制。\n",
    "<br>\n",
    "正则化会使待估参数的偏差变大、方差变小，从而防止过拟合，提高模型泛化能力。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 正则化和线性回归\n",
    "从统计角度看，对于线性回归模型，使用L1正则化的模型叫做Lasso回归，使用L2正则化的模型叫做Ridge回归（岭回归）。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "对于待估参数为 $w$ ， $h_w(x)$ 是我们的假设函数：\n",
    "$$h_w(x) = w_0 + w_1 x_1 + w_2 x_2 ... + w_n x_n$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "假设有 $m$ 个样本，线性回归的代价函数如下：\n",
    "$$J(w) = \\frac{1}{2m} \\sum _{i=0}^m (h_w(x_i) - y_i)^2$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "在梯度下降算法中，需要先对参数求导，得到梯度。下面是某个参数 $w_j$ 的偏导：\n",
    "$$  \\frac{\\partial}{\\partial w_j} J(w) = \\frac{1}{m} \\sum _{i=0}^m (h_w(x_i) - y_i) x_{ij} $$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "梯度下降算法中，使用负号来沿梯度的负方向更新参数，并乘以学习率 $\\alpha$ ，得到 $w_j$ 最终迭代公式：\n",
    "$$ w_j :=  w_j - \\alpha \\frac{1}{m} \\sum _{i=0}^m (h_w(x_i) - y_i) x_{ij} $$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "在原代价函数后添加L1正则化（ $\\lambda$ 是正则化参数）：\n",
    "$$J(w) = \\frac{1}{2m} \\sum _{i=0}^m (h_w(x_i) - y_i)^2 + \\lambda |w_j| $$\n",
    "迭代公式会变成：\n",
    "$$ w_j := w_j - \\alpha ( \\frac{1}{m} \\sum _{i=0}^m (h_w(x_i) - y_i) x_{ij} + \\lambda \\frac{|w_j|}{w_j}  ) $$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "在原代价函数后添加L2正则化（ $\\lambda$ 是正则化参数）：\n",
    "$$J(w) = \\frac{1}{2m} \\sum _{i=0}^m (h_w(x_i) - y_i)^2 + \\frac{\\lambda}{2} w_j^2 $$\n",
    "迭代公式会变成：\n",
    "$$ w_j := w_j - \\alpha ( \\frac{1}{m} \\sum _{i=0}^m (h_w(x_i) - y_i) x_{ij} + \\lambda w_j ) $$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "添加正则化惩罚项后，修改了 $w_j$ 每次迭代变化的大小。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![](https://img-blog.csdnimg.cn/20190612200756669.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_30,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1llbGxvd19weXRob24=,size_16,color_FFFFFF,t_70)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- 如图示，假设 $w$ 有两参数 $w_1,w_2$\n",
    "- 椭圆为最小二乘误差函数的等高线。\n",
    "- lasso的约束区域：$|w_1|+|w_2|$\n",
    "- 岭回归的约束区域：$w_1^2+w_2^2$\n",
    "- 等高线和约束域的切点就是目标函数的最优解\n",
    "- lasso的等高线和约束域的切点倾向于出现在近坐标轴的位置，故容易产生稀疏的结果；而Ridge的切点一般距离坐标轴较远。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### example\n",
    "波士顿房价数据集"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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vXv3atmyZcrPz5ckDRs2TB988IEmTJigevXq6ccff9Rnn3120bCakZGh5ORkJSYm6q233tLRo0eVkpKidu3aacOGDapVq5ar7X/+8x8NHTpUo0aNUlhYmF588UX16dNH3377reLj44vdBwAAAMovApvDXXfddXrzzTddz3NycvTkk0/qhx9+UFRUlLKysvT8889r7NixSklJcbW7/vrr1a5dO3344Ye68847JUkvvPCC6/X8/Hx17NhR27Zt08yZMwsFtho1amjRokVFTjfMz89XXl6ecnNz9fHHH2vGjBl64oknFBER4Wozbdo07dq1S//+979Vr149SVKnTp30008/KS0tTY888oj8/Pz07LPPKjg4WMuXL1flypUlSe3bt1dcXFyR0yuLqis1NVXWWq1evVqhoaGSpK5du2r37t1KSUlRz549dfDgQW3fvl2LFy92BThJuueee1xfr127VgMGDNADDzzg2tarV68iz8t5Tz/9tOrUqaOPPvrINW30lltu0fXXX68XX3xRU6ZMcbU9ePCg1qxZ4/o8mjdvrpo1a2rhwoUaPXr0RfcDAACA8okpkQ6XnJxc4Hnjxo0l/Xf64cqVK5Wfn68BAwYoLy/P9WjVqpWCg4O1Zs0a13u//PJL9ejRQzVq1JCfn5/8/f21cuXKQtP3JOnOO+8s9tqwrl27yt/fX8HBwerVq5c6dOig559/vkCbjIwMtWrVSnFxcQXq6tq1q3788Ud98803kqR169ape/furrAmSTVr1lSbNm2K3HdRdWVkZKh79+4KCQkptK+NGzfqyJEjCg0NVZ06dTRy5Ei99tpr2r59e6G+W7RoofT0dE2YMEGZmZk6c+ZMkTWcd+zYMX311Vfq379/gWv84uLi1LZt2wKjoJJUr149V1iTpIiICEVERBSaSgoAAACcR2BzuOrVqxd4HhAQIEk6ceKEJCk7O1uSFB8fL39//wKPI0eO6Mcff5Qk7d69Wx07dtShQ4f08ssv6/PPP9f69euVlJTk6utCNWvWLLam6dOna/369Vq1apX69++vpUuXavz48QXaZGdna82aNYVq6tu3ryS56tq3b1+BkbnzatSoUeS+i6orOztb8+bNK7SvJ5980rUvY4xWrlyphIQEjRo1Stdff73q1KmjGTNmuPp5+eWX9fDDD2vu3Llq0aKFIiIiNGzYMB0/frzIWg4fPixrbZE1RUZGFrqG8NfnUjp7Pov6/AEAAACJKZFl3vkpgCtWrFC1atWKfT0jI0M///yzFi5cWGBZ+uLCyMVWXrz++uuVkJAg6ewqkQcOHNCECRN0//33q3bt2q79RkREaNq0aUX2Ub9+fUlnA9j50HmhAwcOXHZdoaGhat++vUaMGFHke6KioiRJderU0bx582St1caNG/XKK6/o0UcfVWxsrLp166YqVapo4sSJmjhxonbt2qV33nlHI0eOVKVKlTR58uRC/VarVk3GGO3fv7/Qa/v373d99gAAAMCVIrCVcZ07d1aFChX0/fffq3PnzsW2Ox/M/P39Xdu2bdumzz77zK37ihljNHXqVDVr1kyTJk3S9OnTJUlJSUl6+eWXFRMTU+QI2nmtW7fWsmXLdPz4cde0yH379umzzz676CjfhZKSkrR27VrdeOONCgoKuqyamzZtqilTpmjOnDnavHlzoWv4rrvuOg0fPlzz58/X5s2bi+znmmuu0c0336y3335bqamprsVddu3apc8//9y1sAoAAABwpQhspSwjI6PQYhohISFX3F/dunU1YsQIPfbYY9q6datuvfVW18qJK1eu1ODBg3X77berU6dO8vPz07333qvhw4dr3759Gjt2rGJiYlyrJF6pJk2aqHfv3pozZ47GjBmjqKgoDRs2TG+99Zbat2+vYcOGqX79+jp27Ji+/fZbffLJJ1q8eLGks4t2vPPOO+ratav+9Kc/6eTJkxo/frxq1KhR5CqRRRk3bpxatmypDh066LHHHlNsbKwOHz6szZs3a8eOHZo7d642bdqkoUOHqn///oqPj9eZM2eUnp4uPz8/JSYmSjq7WEjPnj3VuHFjValSRatXr9bGjRs1aNCgYvc9fvx4JScnq0ePHnr00Ud19OhRjR07ViEhIRo+fLhbnysAAABQxgKb9XYBbitq1OXGG290TTG8EhMmTFCDBg00ffp0TZ8+XcYY1a5dWx07dnQtcnHjjTdq/vz5rlUT69atq0mTJikjI0P//Oc/r3jf540bN07vvfeeJk+erGnTpikkJESff/65xo0bp8mTJ2vv3r2qWrWq6tevr969e7ve17BhQy1dulRPPvmk+vXrp1q1amnEiBHKyMhQVlbWZe07JiZGmZmZSk1N1ejRo5WTk6PQ0FA1atTIFbYiIyMVExOjKVOmaM+ePQoMDFTjxo21ZMkS3XzzzZKkDh06aOHChZo0aZLy8vJUp04dvfTSS3r88ceL3XdSUpKWLl2qtLQ09evXT5UqVdJtt92mP//5z66pmAAAAMCVMtaWfghKSEiwmZmZxb6+ZcsWNWjQoBQrgpMcPXpU8fHxSk5O1pw5c7xdjiPwPXExxV9vWWTrtJL1bseW/T8UoSzg37HvKk/ntjwda3lzlc9tasnamxIO4ngh7lwWY8yX1tpLjtqUsRE2+KIhQ4aoTZs2ioqK0g8//KBp06bp8OHDGjp0qLdLAwAAALyKwAavO3HihEaMGKEDBw6oUqVKatmypVatWqWbbrrJ26UBAAAAXuVWYDPGPC/pDkmnJP1H0v3W2p88URjKj9dee83bJQAAAACO5O6Ns1dKamStvUnSNkmj3C8JAAAAACC5GdistSustXnnnq6TdOU39AIAAAAAFODuCNuF/kfSRx7sDwAAAADKtUtew2aMWSUpsoiXxlhrF59rM0ZSnqT5F+nnIUkPSWfvmwUAAICCWLoewK9dMrBZaztd7HVjzCBJPSR1tBe5qZu1dpakWdLZ+7CVsE4A8Ah+GQIAAGWJu6tEJkkaIelWa+1xz5QEACVBAAMAZyjhzYzHXqUyAB/j7n3YXpEUIGmlMUaS1llrf+92VQAAAD6BPyoBcI9bgc1aG++pQi6HSTOlubtC3JlKlZ6ervvvv9/13N/fX7Vr11b//v2VkpKiwMDAAu127typ2NjYYvvLyspSXFycXn/9dd13331XXBcAAAAA53J3hA0l9Pbbbys6Olq//PKLFi1apIkTJ+qXX37Ryy+/LElKTk7W2rVrVbNmTS9XCgAAAMDbCGylrGnTpoqPPzsw2blzZ23fvl1z5szRtGnTVKFCBYWHhys8PNzLVQIAAABwAk/ehw1XoHnz5srNzdXBgwclnZ0SaYxRVlaWq83x48f16KOPKjQ0VFWqVFHPnj21Z8+eIvubNm2aYmNjFRgYqJYtW+rzzz9XbGxsoWmTO3fu1IABAxQeHq6AgAA1bdpUixYtulqHCQAAAOAKENi8LCsrSyEhIQoNDS22zcMPP6zZs2frj3/8o9577z3Vr19f99xzT6F2s2fP1hNPPKFOnTpp8eLFuu+++3TPPffop59+KtBu9+7datWqlTZu3KiXXnpJH3zwgZo3b67evXvrgw8+8PgxAgAAALgyTIksZWfOnFFeXp7rGrZ3331XU6dOVcWKFYtsv3XrVr355pt67rnnNHLkSElSly5ddPToUc2cOdPVLj8/X2lpaerWrZtmz57t2h4ZGanevXsX6DM1NVXWWq1evdoVFLt27ardu3crJSVFPXv29PRhAwAAALgCjLCVshtuuEH+/v6qXr26HnjgAT388MN67LHHim3/xRdfKD8/X/369Suw/a677irwfM+ePdqzZ4/69u1bYPtvfvMb+fkVzOUZGRnq3r27QkJClJeX53p07dpVGzdu1JEjR9w8SgAAAACewAhbKVu0aJGio6OVk5OjKVOm6NVXX1WrVq107733Ftl+3759kqQaNWoU2P7r5+fbRUREFNhesWJFhYWFFdiWnZ2tefPmad68eUXu88cff1RwcPDlHxQAAACAq4LAVsoaNWrkWiUyMTFRN910k5588kn17t1b11xzTaH255f3P3DggOrUqePafuDAgSLbZWdnF9h+5swZ14Im54WGhqp9+/YaMWJEkTVGRUWV8KgAAAAAXA1MifSigIAAPf/888rOztarr75aZJtWrVqpQoUKWrhwYYHtCxYsKPA8Ojpa0dHRevvttwtsf//995WXl1dgW1JSkjZt2qQbb7xRCQkJhR4BAQEeODoAAADA86wt2aOsY4TNy3r27KkWLVrohRdeKPJatvMrQqakpCg/P18tWrTQypUrtWzZsgLtKlSooLFjx+rBBx/U4MGD1bdvX+3YsUOTJk1SSEiIKlT4bzYfN26cWrZsqQ4dOuixxx5TbGysDh8+rM2bN2vHjh2aO3fuVT9uAAAAAJdWpgKbHesDEbkIzz77rLp27aqZM2eqWrVqhV7/y1/+oipVquiFF17QqVOnlJiYqDfffFPt2rUr0G7w4ME6evSoXnrpJf3tb39To0aNNH/+fN1xxx0KCQlxtYuJiVFmZqZSU1M1evRo5eTkKDQ0VI0aNdKgQYOu+vECAAAAuDzGemGcMCEhwWZmZhb7+pYtW9SgQYNSrMh3rV+/Xi1bttS8efM0cOBAb5eDK8T3BODrTMlap5Wsd1/9gyeA0nKVf0allqy9T8xzlGSM+dJam3CpdmVqhA0Xt3PnTk2fPl3t27dXcHCwtmzZogkTJiguLq7QvdgAAAAAOB+BzYcEBQVp8+bNmjdvng4fPqxq1aqpU6dOmjRpkipXruzt8gAAAACUEIHNh0RGRiojI8PbZQAAAADwEJb1BwAAAACHIrABAAAAgEMR2AAAAADAoQhsAAAAAOBQBDYAAAAAcCgCGwAAAAA4FIENAAAAAByqbAU2Y7z7cEN6erqMMfruu+889GEAAAAA8HVlK7ABAAAAQDlCYAMAAAAAhyKwOcT69evVp08fRUdHKygoSPXr19fo0aOVm5tboN3y5cvVtm1bhYSEqEqVKqpfv77GjRvnen3btm3q1auXIiIiFBgYqJiYGPXt21d5eXmuNlu3blWvXr1UtWpVBQUFqXXr1srIyCi1YwUAAABwefy8XQDO+v7779W0aVPdd999uvbaa/X1119r3Lhx2rFjhxYsWCBJ2rFjh3r27Kk+ffromWeeUaVKlbR9+3bt2LHD1U+PHj1UtWpVzZgxQ2FhYdq7d6+WLVum/Px8SdIPP/ygdu3a6dprr9Urr7yikJAQTZ8+XcnJyVqyZIm6devmleMHAAAAUBiBzSF69+7t+tpaq7Zt2yo4OFj33nuvpk+frtDQUH311Vc6deqUZsyYoeDgYElSYmKi630HDx7U9u3btXjxYvXs2dO1/Z577nF9PWXKFB0+fFhr165VfHy8JKl79+5q2LChxowZQ2ADAAAAHIQpkQ5x5MgRjRgxQnXr1lVAQID8/f01cOBAWWu1fft2SVLTpk3l7++vu+66S++8846ys7ML9BEaGqo6depo5MiReu2111zvu9CaNWvUunVrV1iTpIoVK+ruu+/Whg0bdOTIkat7oAAAAAAuG4HNIe6//37NnDlTjz/+uFauXKn169dr+vTpkqQTJ05IkuLj47V8+XLl5+dr4MCBioyMVKtWrbR69WpJkjFGK1euVEJCgkaNGqXrr79ederU0YwZM1z7OXTokGrWrFlo/5GRkbLW6vDhw6VwtAAAAAAuh1uBzRgz3hizyRizwRizwhgT5anCypMTJ05o8eLFevLJJzV06FDdeuutSkhIUFBQUKG2t99+uzIyMvTTTz9p1apV8vf3V3Jysg4ePChJqlOnjubNm6ecnBz961//UmJioh599FF99NFHkqTq1atr//79hfrdv3+/jDGqXr361T1YAAAAAJfN3RG25621N1lrm0paIinFAzWVOydPntSZM2fk7+9fYHt6enqx7wkICFBiYqKeeuopHTt2TDt37izwujFGTZs21ZQpUyRJmzdvliTdeuutWrdunbKyslxtz5w5o7feekvNmjXTtdde65mDAgAAAOA2txYdsdZeeMHTNZKse+X4voyMDEVGRhbYFhISotatW+vFF19UzZo1FRYWprlz52rv3r0F2s2cOVNr1qxR9+7dVbt2bR08eFATJ05UVFSUGjVqpE2bNmno0KHq37+/4uPjdebMGaWnp8vPz8+1OMmwYcOUnp6uzp07Ky0tTcHBwXr11Ve1bds2LV26tNQ+BwAAAACX5vYqkcaY5yTdK+lnSbdfpN1Dkh6SpJiYmCvbmS37eXDIkCGFtt14441asmSJHnn6mIPiAAAN5ElEQVTkEf3hD39QUFCQ+vXrp2nTpqlHjx6udk2aNNFHH32kUaNGKTs7W9WrV1e7du00f/58BQUFKTIyUjExMZoyZYr27NmjwMBANW7cWEuWLNHNN98sSYqKitKnn36qESNG6JFHHtHJkyfVtGlTLV26VElJSaX2OQAAAAC4NGMvEYKMMaskRRbx0hhr7eIL2o2SFGitHXupnSYkJNjMzMxiX9+yZYsaNGhwqW6AcoPvCcDXmZK1TitZ73Zs2f+DJwBvuso/o1JL1t4XBnEkyRjzpbU24VLtLjnCZq3tdJn7fFPSUkmXDGwAAAAAgEtza0qkMaaetfb8zb56SvrW/ZIAAMDFMGIGAOWHu9ewTTLG1JeUL2mXpN+7XxIAAOUNAQwAUDR3V4ns7alCAAAAAAAFuXsfNgAAAADAVUJgAwAAAACHIrABAAAAgEMR2AAAAADAoQhsAAAAAOBQBDYAAAAAcKgyFdiM8e7DHenp6TLGFPmoWrVqgTZZWVnuf1i/MnXqVL333nuFtqempsqU8OCysrJctf/jH/8o9Hq7du102223lbjGDRs2KDU1VYcOHSrxewEAAABf5O6Ns1FCb7/9tqKjowts8/O7+qdh6tSpateunX77298W2D548GAlJSVdcb9jxozR2rVr3S1P0tnAlpaWpt/97neqXr26R/oEAAAAyjICWylr2rSp4uPjvV2GS3R0dKEAebm6dOmiFStW6MMPP9Qdd9zh4coAAAAAlKkpkeXRggULlJiYqPDwcFWpUkXNmjXTG2+8UajdtGnT1KBBAwUFBalatWpKSEjQokWLJEmxsbHatWuX5s+f75rKeN9990kqekpkXl6eJk+erIYNGyowMFDh4eFKSkrSt99+W6Bdnz591Lx5cz399NOy1l70OI4fP64RI0YoLi5OlSpVUlxcnJ577jnl5+dLOjsd9P7775ck1atXz1Xn1ZgeCgAAAJQVjLCVsjNnzigvL6/AtgoVKqhChaKz844dO9SnTx+NHDlSFSpU0Jo1azR48GDl5ubq97//vSRp/vz5Gj58uFJSUtS+fXvl5uZq06ZNrmvBFi1apO7du6tJkyZKTU2VJIWHhxdb41133aX3339fTzzxhDp16qQTJ05ozZo12rdvn2644QZXO2OMnn32WXXv3l1vvfWW7rrrriL7y8vLU9euXfXNN9/omWeeUePGjbVu3TqNHz9ehw4d0osvvqjk5GQ9/fTTevbZZwtMG61Zs+blfbAAAACADyKwlbILA895ycnJWrJkSZHtR48e7fo6Pz9ft912m/bt26cZM2a4AtvatWt10003KSUlxdW2e/furq+bNWumgIAAhYWFqXXr1het7x//+IfeffddTZs2TY8//rhr+5133llk+27duqldu3ZKSUlRnz59irwe7+9//7s+/fRTrV69Wh06dJAkdezYUZKUlpamESNGKCIiQnXr1pXkvGmjAAAAgLcwJbKULVq0SOvXry/wmDp1arHtt2/frrvvvlu1atWSv7+//P39NXv2bG3dutXVpkWLFtqwYYOGDBmiVatW6fjx41dc34oVK2SM0YMPPnjZ75kwYYK2b9+u9PT0Il/PyMjQddddpzZt2igvL8/16NKli06fPq1169Zdcb0AAACAL2OErZQ1atToskePjh49qs6dO6ty5cqaNGmS6tatq0qVKmnGjBmaO3euq929996rEydOaM6cOXr11Vfl7++v7t27a8qUKYqNjS1RfT/++KOqV6+uoKCgy35P+/btlZSUpHHjxmngwIGFXs/OztauXbvk7+9f7D4BAAAAFEZgc7C1a9dq165d+uSTT9SuXTvX9l9fA2eM0cMPP6yHH35Yhw8f1ooVKzR8+HD1799fX3zxRYn2GRYWpkOHDik3N7dEoe25555TQkKCZs6cWei10NBQxcXFaeHChUW+t6ShEgAAACgvmBLpYOenNl44MnX48GEtXry42PdUq1ZN/fv3V79+/bR582bX9oCAAOXm5l5yn126dJG1VrNnzy5Rrc2bN1fv3r01YcIEHTt2rMBrSUlJ2r17t6pUqaKEhIRCj7Cw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\n",
      "text/plain": [
       "<Figure size 1080x360 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "from sklearn.datasets import load_boston\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "from sklearn.linear_model import LinearRegression, Lasso, Ridge, ElasticNet\n",
    "import numpy as np, matplotlib.pyplot as mp\n",
    "\n",
    "bunch = load_boston()\n",
    "X = bunch.data\n",
    "Y = bunch.target\n",
    "X = StandardScaler().fit_transform(X)\n",
    "\n",
    "arange = np.arange(X.shape[1])\n",
    "width = .2  # 条形图宽度\n",
    "ls = [\n",
    "    (LinearRegression(), 'yellow', 0, 'LinearRegression'),\n",
    "    (Ridge(), 'green', 1, 'Ridge'),\n",
    "    (Lasso(), 'red', 2, 'Lasso'),\n",
    "    (ElasticNet(), 'blue', 3, 'ElasticNet')\n",
    "]\n",
    "mp.figure(figsize=(15, 5))\n",
    "for model, color, offset, label in ls:\n",
    "    model.fit(X, Y)  # 拟合\n",
    "    mp.bar(arange + width * offset, model.coef_, width=width, color=color, label=label)\n",
    "mp.legend(prop={'size': 16})\n",
    "mp.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### L2正则化和过拟合\n",
    "拟合过程中通常都倾向于让权值尽可能小，最后构造一个所有参数都比较小的模型。因为一般认为参数值小的模型比较简单，能适应不同的数据集，也在一定程度上避免了过拟合现象。可以设想一下对于一个线性回归方程，若参数很大，那么只要数据偏移一点点，就会对结果造成很大的影响；但如果参数足够小，数据偏移得多一点也不会对结果造成什么影响，专业一点的说法是【抗扰动能力强】。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "%matplotlib inline\n",
    "import matplotlib.pyplot as mp, numpy as np\n",
    "from sklearn.datasets import make_blobs"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "手写一个神经网络"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "class NN:\n",
    "    def __init__(self, nn=32, lr=1., precision=5e-8, alpha=0.):\n",
    "        self.nn = nn  # 神经元个数\n",
    "        self.lr = lr  # 学习率\n",
    "        self.precision = precision  # 允许误差范围\n",
    "        self.alpha = alpha  # l2正则化惩罚项系数\n",
    "        self.loss = [9e99]  # 记录损失值\n",
    "        self.W1, self.b1 = None, None\n",
    "        self.W2, self.b2 = None, None\n",
    "\n",
    "    def fit(self, X, y):\n",
    "        n = X.shape[0]  # 样本数\n",
    "        d = X.shape[1]  # 维数\n",
    "        k = len(np.unique(y))  # 种类数\n",
    "        # 参数初始化\n",
    "        W1 = 1e-3 * np.random.randn(d, self.nn)\n",
    "        b1 = np.zeros((1, self.nn))\n",
    "        W2 = 1e-3 * np.random.randn(self.nn, k)\n",
    "        b2 = np.zeros((1, k))\n",
    "        # 梯度下降循环\n",
    "        for i in range(10000):\n",
    "            # ReLU激活\n",
    "            hidden_layer = np.maximum(0, np.dot(X, W1) + b1)\n",
    "            # 得分\n",
    "            scores = np.dot(hidden_layer, W2) + b2\n",
    "            # 概率\n",
    "            exp_scores = np.exp(scores)\n",
    "            probs = exp_scores / np.sum(exp_scores, axis=1, keepdims=True)\n",
    "            # 记录损失值\n",
    "            l2 = self.alpha * .5 * (np.sum(np.dot(W1, W1.T)) + np.sum(np.dot(W2, W2.T)))\n",
    "            loss = np.mean(-np.log(probs[range(n), y])) + l2\n",
    "            if np.abs(loss - self.loss[-1]) < self.precision:\n",
    "                break  # 损失值变化足够小时退出迭代\n",
    "            self.loss.append(loss)\n",
    "            # 梯度\n",
    "            probs[range(n), y] -= 1\n",
    "            dscores = probs / n\n",
    "            # 反向传播\n",
    "            dhidden = np.dot(dscores, W2.T)  # 隐层\n",
    "            dhidden[hidden_layer <= 0] = 0  # ReLU\n",
    "            # 参数更新：W2、b2\n",
    "            W2 -= self.lr * np.dot(hidden_layer.T, dscores) + self.alpha * W2\n",
    "            b2 -= self.lr * np.sum(dscores, axis=0, keepdims=True)\n",
    "            # 参数更新：W1、b1\n",
    "            W1 -= self.lr * np.dot(X.T, dhidden) + self.alpha * W1\n",
    "            b1 -= self.lr * np.sum(dhidden, axis=0, keepdims=True)\n",
    "        # 训练完成\n",
    "        self.W1, self.b1 = W1, b1\n",
    "        self.W2, self.b2 = W2, b2\n",
    "        self.loss = self.loss[1:]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "多图可视化函数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "def visualize(X, y, nn, i, le):\n",
    "    mp.subplot(1, le, i)\n",
    "    x_min, x_max = X[:, 0].min() - .1, X[:, 0].max() + .1\n",
    "    y_min, y_max = X[:, 1].min() - .1, X[:, 1].max() + .1\n",
    "    xx, yy = np.meshgrid(np.arange(x_min, x_max, .02), np.arange(y_min, y_max, .02))\n",
    "    Z = np.dot(np.maximum(0, np.dot(np.c_[xx.ravel(), yy.ravel()], nn.W1) + nn.b1), nn.W2) + nn.b2\n",
    "    Z = np.argmax(Z, axis=1)\n",
    "    Z = Z.reshape(xx.shape)\n",
    "    mp.contourf(xx, yy, Z, alpha=.1)\n",
    "    mp.scatter(X[:, 0], X[:, 1], c=y, s=20, alpha=.7)\n",
    "    mp.axis('off')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "探究L2正则化系数对拟合效果的影响"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "正则化系数：0     迭代次数：10000 最终损失值：0.0353\n",
      "正则化系数：0.001 迭代次数：10000 最终损失值：0.1343\n",
      "正则化系数：0.01  迭代次数：10000 最终损失值：0.2712\n",
      "正则化系数：0.1   迭代次数：10000 最终损失值：0.8747\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1080x252 with 4 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "X, y = make_blobs(random_state=0)  # 创建随机样本\n",
    "mp.figure(figsize=(15, 3.5))\n",
    "ls = [0., 1e-3, 1e-2, 1e-1]  # L2正则化系数\n",
    "le = len(ls)\n",
    "for i in range(le):\n",
    "    nn = NN(alpha=ls[i])  # 建模\n",
    "    nn.fit(X, y)  # 拟合\n",
    "    print('正则化系数：%-5g' % ls[i], '迭代次数：%5d' % len(nn.loss), '最终损失值：%.4f' % nn.loss[-1])\n",
    "    visualize(X, y, nn, i + 1, le)  # 可视化\n",
    "mp.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
